#pragma once

//----------------------------------------------------------------------
// Defines used by MyCreateHatchBrush
//
typedef struct {
	BITMAPINFOHEADER bmi;
	COLORREF dwPal[2];
	BYTE bBits[64];
} BRUSHBMP;

#define HS_HORIZONTAL       0       /* ----- */
#define HS_VERTICAL         1       /* ||||| */
#define HS_FDIAGONAL        2       /* \\\\\ */
#define HS_BDIAGONAL        3       /* ///// */
#define HS_CROSS            4       /* +++++ */
#define HS_DIAGCROSS        5       /* xxxxx */

class DisplayTest
{
public:
	DisplayTest(void);
	~DisplayTest(void);
	bool Run();

	enum LCD_TEST_OPTION {
		ShowTestPattern = 0x01,
		ShowImages		= 0x02,
		ShowColorBars	= 0x04,
	};

	struct DISPLAY_TEST_CONFIG {
		LCD_TEST_OPTION option;
		int delay;
	};
	HBRUSH CreateHatchBrush(INT fnStyle, COLORREF clrref);
	LRESULT PaintTest(HWND hwnd);

private:
	bool m_show_test_pattern();
	bool m_show_images();
	bool m_show_colorBars();

	int delay;
};
